\hypertarget{class_lib_u_s_b_1_1_transfer}{\section{Lib\-U\-S\-B\-:\-:Transfer Class Reference}
\label{class_lib_u_s_b_1_1_transfer}\index{Lib\-U\-S\-B\-::\-Transfer@{Lib\-U\-S\-B\-::\-Transfer}}
}


U\-S\-B Data transfer object.  




{\ttfamily \#include $<$Transfer.\-h$>$}



Inheritance diagram for Lib\-U\-S\-B\-:\-:Transfer\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_lib_u_s_b_1_1_transfer__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_afd32a556e274e2bb6eddb7d1490049dd}{\hyperlink{class_lib_u_s_b_1_1_transfer_afd32a556e274e2bb6eddb7d1490049dd}{Transfer} (std\-::shared\-\_\-ptr$<$ Transfer\-Impl $>$ p\-Transfer\-Impl)}\label{class_lib_u_s_b_1_1_transfer_afd32a556e274e2bb6eddb7d1490049dd}

\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_ad34f40b2ff13df7906654211179e35be}{virtual \hyperlink{class_lib_u_s_b_1_1_transfer_ad34f40b2ff13df7906654211179e35be}{$\sim$\-Transfer} ()}\label{class_lib_u_s_b_1_1_transfer_ad34f40b2ff13df7906654211179e35be}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_aecca9fae023e6c92b33c45e9918aad0a}{bool \hyperlink{class_lib_u_s_b_1_1_transfer_aecca9fae023e6c92b33c45e9918aad0a}{is\-Complete} ()}\label{class_lib_u_s_b_1_1_transfer_aecca9fae023e6c92b33c45e9918aad0a}

\begin{DoxyCompactList}\small\item\em Returns T\-R\-U\-E if the transfer is complete. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a98e88da8dd01ae9686cc9b54eab17c65}{bool \hyperlink{class_lib_u_s_b_1_1_transfer_a98e88da8dd01ae9686cc9b54eab17c65}{is\-Successful} () const }\label{class_lib_u_s_b_1_1_transfer_a98e88da8dd01ae9686cc9b54eab17c65}

\begin{DoxyCompactList}\small\item\em Returns T\-R\-U\-E if the transfer is\-Successful. (\hyperlink{class_lib_u_s_b_1_1_transfer}{Transfer} M\-U\-S\-T be complete, throws any waiting exceptions) \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_aaf7d05f7b96cb98fd201ec9266da2fb6}{void \hyperlink{class_lib_u_s_b_1_1_transfer_aaf7d05f7b96cb98fd201ec9266da2fb6}{set\-Transfer\-Buffer} (std\-::shared\-\_\-ptr$<$ unsigned char $>$ p\-Buffer, size\-\_\-t transfer\-Size)}\label{class_lib_u_s_b_1_1_transfer_aaf7d05f7b96cb98fd201ec9266da2fb6}

\begin{DoxyCompactList}\small\item\em Sets the amount of data to transfer in/out from the buffer. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_af8bab95cfa16ca472e67ece211c3ff6d}{std\-::shared\-\_\-ptr$<$ unsigned char $>$ \hyperlink{class_lib_u_s_b_1_1_transfer_af8bab95cfa16ca472e67ece211c3ff6d}{get\-Transfer\-Buffer} ()}\label{class_lib_u_s_b_1_1_transfer_af8bab95cfa16ca472e67ece211c3ff6d}

\begin{DoxyCompactList}\small\item\em Returns transfer buffer. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a1de8c97baaa813aa076c8feff25c8010}{size\-\_\-t \hyperlink{class_lib_u_s_b_1_1_transfer_a1de8c97baaa813aa076c8feff25c8010}{Bytes\-Transferred} () const }\label{class_lib_u_s_b_1_1_transfer_a1de8c97baaa813aa076c8feff25c8010}

\begin{DoxyCompactList}\small\item\em Returns the amount of data written/read to/from the buffer. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_af1b7c2aca86e4fa5d781e375132d9e32}{void \hyperlink{class_lib_u_s_b_1_1_transfer_af1b7c2aca86e4fa5d781e375132d9e32}{Set\-Timeout} (std\-::chrono\-::milliseconds timeout)}\label{class_lib_u_s_b_1_1_transfer_af1b7c2aca86e4fa5d781e375132d9e32}

\begin{DoxyCompactList}\small\item\em Sets the timeout period for the transfer (0 denotes infinity) \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_ae871f26d99baaa9ec639e17bb3fd3fa8}{virtual void \hyperlink{class_lib_u_s_b_1_1_transfer_ae871f26d99baaa9ec639e17bb3fd3fa8}{Start} ()}\label{class_lib_u_s_b_1_1_transfer_ae871f26d99baaa9ec639e17bb3fd3fa8}

\begin{DoxyCompactList}\small\item\em Starts the transfer. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a25c88d0e7f825f47bffa545b3109fcb3}{void \hyperlink{class_lib_u_s_b_1_1_transfer_a25c88d0e7f825f47bffa545b3109fcb3}{Async\-Start} ()}\label{class_lib_u_s_b_1_1_transfer_a25c88d0e7f825f47bffa545b3109fcb3}

\begin{DoxyCompactList}\small\item\em Starts an asynchronous transfer. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a625044102e97538726eccba59a41f6a6}{virtual void \hyperlink{class_lib_u_s_b_1_1_transfer_a625044102e97538726eccba59a41f6a6}{Cancel} ()}\label{class_lib_u_s_b_1_1_transfer_a625044102e97538726eccba59a41f6a6}

\begin{DoxyCompactList}\small\item\em Stops/\-Cancels the transfer. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a2545527a281fb10a8474d46cd4575d42}{virtual void \hyperlink{class_lib_u_s_b_1_1_transfer_a2545527a281fb10a8474d46cd4575d42}{Reset} ()}\label{class_lib_u_s_b_1_1_transfer_a2545527a281fb10a8474d46cd4575d42}

\begin{DoxyCompactList}\small\item\em Resets the transfer to be used again. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a499e1d2d8d76ba3a01c16007d5240d32}{Transfer\-Result\-\_\-t \hyperlink{class_lib_u_s_b_1_1_transfer_a499e1d2d8d76ba3a01c16007d5240d32}{Result} () const }\label{class_lib_u_s_b_1_1_transfer_a499e1d2d8d76ba3a01c16007d5240d32}

\begin{DoxyCompactList}\small\item\em Returns the result of the transfer. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a0c3819a498e103f14997f1a87f69873d}{virtual void \hyperlink{class_lib_u_s_b_1_1_transfer_a0c3819a498e103f14997f1a87f69873d}{Init} ()}\label{class_lib_u_s_b_1_1_transfer_a0c3819a498e103f14997f1a87f69873d}

\begin{DoxyCompactList}\small\item\em Initializes the object after construction is completed. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_ac8ac10245a2bdd4c90495de86c7c1480}{bool \hyperlink{class_lib_u_s_b_1_1_transfer_ac8ac10245a2bdd4c90495de86c7c1480}{Wait\-For\-Completion} ()}\label{class_lib_u_s_b_1_1_transfer_ac8ac10245a2bdd4c90495de86c7c1480}

\begin{DoxyCompactList}\small\item\em Waits until the \hyperlink{class_lib_u_s_b_1_1_transfer}{Transfer} is complete. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
std\-::shared\-\_\-ptr$<$ Transfer\-Impl $>$ \hyperlink{class_lib_u_s_b_1_1_transfer_a09688b01c634cfdb522fb0c229da7308}{m\-\_\-p\-Transfer\-Impl}
\begin{DoxyCompactList}\small\item\em Resolves Completion. \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a5ea1bdbaa5248a43d4f7b053220677a4}{std\-::future$<$ std\-::shared\-\_\-ptr\\*
$<$ Lib\-U\-S\-B\-::\-Transfer\-Impl $>$ $>$ \hyperlink{class_lib_u_s_b_1_1_transfer_a5ea1bdbaa5248a43d4f7b053220677a4}{m\-\_\-\-Transfer\-Future}}\label{class_lib_u_s_b_1_1_transfer_a5ea1bdbaa5248a43d4f7b053220677a4}

\begin{DoxyCompactList}\small\item\em Result of the \hyperlink{class_lib_u_s_b_1_1_transfer}{Transfer} (Transfer\-Impl) \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_a86498992dc1076d2d14ca8a646746059}{bool \hyperlink{class_lib_u_s_b_1_1_transfer_a86498992dc1076d2d14ca8a646746059}{m\-\_\-\-Asynchronous\-Transfer\-Pending}}\label{class_lib_u_s_b_1_1_transfer_a86498992dc1076d2d14ca8a646746059}

\begin{DoxyCompactList}\small\item\em Asynchronous \hyperlink{class_lib_u_s_b_1_1_transfer}{Transfer} Flag (true once the thread is started.) \end{DoxyCompactList}\item 
\hypertarget{class_lib_u_s_b_1_1_transfer_aa2690da75e400b433123340d3c160f0c}{std\-::shared\-\_\-ptr$<$ bool $>$ \hyperlink{class_lib_u_s_b_1_1_transfer_aa2690da75e400b433123340d3c160f0c}{m\-\_\-\-Transfer\-Thread\-Running}}\label{class_lib_u_s_b_1_1_transfer_aa2690da75e400b433123340d3c160f0c}

\begin{DoxyCompactList}\small\item\em Indicates that the asynchronous operation is still running. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
U\-S\-B Data transfer object. 

\subsection{Member Data Documentation}
\hypertarget{class_lib_u_s_b_1_1_transfer_a09688b01c634cfdb522fb0c229da7308}{\index{Lib\-U\-S\-B\-::\-Transfer@{Lib\-U\-S\-B\-::\-Transfer}!m\-\_\-p\-Transfer\-Impl@{m\-\_\-p\-Transfer\-Impl}}
\index{m\-\_\-p\-Transfer\-Impl@{m\-\_\-p\-Transfer\-Impl}!LibUSB::Transfer@{Lib\-U\-S\-B\-::\-Transfer}}
\subsubsection[{m\-\_\-p\-Transfer\-Impl}]{\setlength{\rightskip}{0pt plus 5cm}std\-::shared\-\_\-ptr$<$Transfer\-Impl$>$ Lib\-U\-S\-B\-::\-Transfer\-::m\-\_\-p\-Transfer\-Impl\hspace{0.3cm}{\ttfamily [protected]}}}\label{class_lib_u_s_b_1_1_transfer_a09688b01c634cfdb522fb0c229da7308}


Resolves Completion. 

\hyperlink{class_lib_u_s_b_1_1_transfer}{Transfer} Implementation 

The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
headers/Transfer.\-h\end{DoxyCompactItemize}
